package com.ruoyi.system.service.impl;

import com.ruoyi.common.core.domain.entity.system.BoatStatusInfo;
import com.ruoyi.common.core.domain.entity.system.HeartbeatMsg;
import com.ruoyi.handler.socket.SocketMessageHandler1;
import com.ruoyi.system.service.IBoatStatusInfoService;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
public class BoatStatusInfoServiceImpl implements IBoatStatusInfoService {


    /**
     * @param heartbeatMsgs
     * @param infoType      要获取的状态信息类型。
     *                      * 1：位置信息。
     *                      * 2：船机工况信息。
     *                      * 3：发动机故障信息。
     *                      * 4：报警信息。
     *                      * 5：当前驾驶循环统计信息。
     *                      * 6：配置心跳信息-J1939。
     *                      * 7：锁车相关信息。
     * @return
     */
    @Override
    public List<BoatStatusInfo> list(long meterId,List<HeartbeatMsg> heartbeatMsgs, int infoType) {
        List<BoatStatusInfo> boatStatusInfos = heartbeatMsgs.stream().map(heartbeatMsg -> SocketMessageHandler1.
                getBoatStatusInfoFromHeartbeatMsg(meterId,heartbeatMsg, infoType)).collect(Collectors.toList());

        return boatStatusInfos;
    }


}
